"""
自定义线程

  通过 类 去 继承于 threading模块下的Thread
"""
import threading #导入线程的全部函数
#从随机数模块中导入 随机整数的函数
from random import randint
from time import time,sleep
# 类名：MyThread  (继承于threading.Thread)
class MyThread(threading.Thread):

    """
    python的构造函数  __init__
     self  ==== this
    """
    def __init__(self, filename):
        super().__init__()# 自定义线程 必须要调用父类的初始化方法
        self._filename = filename  # _ === private

    #自定义线程的核心函数 run ==> 该函数里面写的是线程中要执行的代码 比如：下载文件的具体代码
    def run(self):
        print("开始下载的文件：%s" % self._filename)
        # 利用随机数生成下载的剩余时间
        time_to_download = randint(5, 10)
        print('剩余时间：%d' % time_to_download)
        sleep(time_to_download)
        print("文件：%s 下载完成" % self._filename)

def main():
    start = time()
    #实例化自定义线程
    thread1 = MyThread("盗墓笔记.txt")
    thread2 = MyThread("听泉鉴宝.pdf")
    #启动线程
    thread1.start()
    thread2.start()

    thread1.join()
    thread2.join()
    end = time()
    print("总共耗时%.3f秒" % (end - start))


if __name__ == '__main__':
    main()